package com.agou.app;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.agou.core.util.UtDate;

public class AppContext {
	public static final String APP_NAME = "com.agou.app.AppContext.APP_NAME";
	
	public boolean isLogin = false;//是否登陆
	public UtDate createDate = new UtDate();// 创建日期
	public UtDate updateDate = new UtDate();// 更新日期
	
	public String projectCode;//项目编码
	public String projectName;// 项目名称
	public long userId;// 用户ID
	public String userLoginId;// 用户登陆ID
	public String userName;// 用户名称
	public long[] branchNo = new long[0];//机构编码
	public String[] branchName = new String[0];//机构名称
	public long[] deptId = new long[0];//部门ID  可存在多个部门
	public String[] deptName = new String[0];//部门名称  可存在多个部门
	public long[] reoleId = new long[0];//角色ID  存在多个角色
	public String[] roleName = new String[0];//角色名称 存在多个角色 
	public long[] postId = new long[0];//职位 一个人具备多个职位
	public String[] postName = new String[0];//职位名称
	public long sysTimestamp = System.currentTimeMillis();;// 系统时间戳
	//----主机信息--------
	public String remoteHost;//调用主机名称
	public int remotePort;//
	public String serverHost;//服务器名称（IP）
	public int serverPort;//服务器名称（IP）
	public String servletPath;//
	public String sessionId;//
	
	private Map<String,String> projectAtt = new HashMap<String,String>();//存放项目属性
	private Map<String, Object> valueMap = new HashMap<String, Object>();//存放项目中使用的值
	
	public void addAttribute(String key , String value){
		projectAtt.put(key, value);
	}
	public String getAttribute(String key){
		return projectAtt.get(key);
	}
	public void addValue(String key, Object value) {
		valueMap.put(key, value);
	}
	public Object getValue(String key) {
		return valueMap.get(key);
	}
	public String getValueToStr(String key) {
		return String.valueOf(valueMap.get(key));
	}
	public Set<String> valueKeySet() {
		return valueMap.keySet();
	}
	
	public String toString(){
		StringBuilder sbStr = new StringBuilder();
		sbStr.append("是否登陆 = ").append(isLogin).append("\n");
		sbStr.append("项目编码 = ").append(projectCode).append("\n");
		sbStr.append("项目名称 = ").append(projectName).append("\n");
		sbStr.append("建立日期 = ").append(createDate).append("\n");
		sbStr.append("更新日期 = ").append(updateDate).append("\n");
		sbStr.append("用户ID = ").append(userId).append("\n");
		sbStr.append("用户登陆ID = ").append(userLoginId).append("\n");
		sbStr.append("用户名称 = ").append(userName).append("\n");
		for(int i = 0 ; i < branchNo.length ; i++){
			sbStr.append("机构编码 [").append(i).append("]=").append(branchNo[i]).append("\n");
			sbStr.append("机构名称[ ").append(i).append("]=").append(branchName[i]).append("\n");
		}//end for
		
		for(int i = 0 ; i < deptId.length ; i++){
			sbStr.append("部门名称[").append(i).append("]=").append(deptId[i]).append("\n");
			sbStr.append("部门编码[ ").append(i).append("]=").append(deptName[i]).append("\n");
		}
		
		for(int i = 0 ; i < reoleId.length ; i++){
			sbStr.append("角色ID[").append(i).append("]=").append(reoleId[i]).append("\n");
			sbStr.append("角色名称[ ").append(i).append("]=").append(roleName[i]).append("\n");
		}
		
		for(int i = 0 ; i < postId.length ; i++){
			sbStr.append("职位ID[").append(i).append("]=").append(postId[i]).append("\n");
			sbStr.append("职位名称[ ").append(i).append("]=").append(postName[i]).append("\n");
		}
		sbStr.append("系统时间戳 = ").append(sysTimestamp).append("\n");
		sbStr.append("远程主机 = ").append(remoteHost).append("\n");
		sbStr.append("远程主机端口 = ").append(remotePort).append("\n");
		sbStr.append("服务器名 = ").append(serverHost).append("\n");
		sbStr.append("服务端 = ").append(serverPort).append("\n");
		sbStr.append("servletPath = ").append(servletPath).append("\n");
		sbStr.append("sessionId = ").append(sessionId).append("\n");
		return sbStr.toString();
	}
}
